Dynamic Format Electronic Confirmations

ABSTRACT

Methods, systems and processes can enable custom message formats in trading. One of the methods includes storing a plurality of different record formats. The method includes receiving a trade record, the trade record identifying a record format of the plurality of different message formats. The method includes identifying potential matching trade records to the trade record. The method includes comparing the trade record to at least one of the potential matches based on the message format. The method also includes generating a matching record based on determining that one of the potential matching trade records matches the message

CLAIM OF PRIORITY

This application is a continuation application to U.S. patentapplication Ser. No. 16/353,487 filed on Mar. 14, 2019, which claimsbenefit to U.S. Provisional Patent Application Ser. No. 62/644,794,filed on Mar. 19, 2018, the entire contents of which are herebyincorporated by reference.

BACKGROUND

Equities trading relies on agreement between a buyer and a seller. Aclearing house is a financial institution formed to facilitate theexchange (i.e., clearance) of payments, securities, or derivativestransactions. The clearing house stands between two clearing firms (alsoknown as member firms or participants)..

SUMMARY

In general, one innovative aspect of the subject matter described inthis specification can be embodied in methods that include the act ofstoring a plurality of different record formats. The methods include theact of receiving a trade record, the trade record identifying a recordformat of the plurality of different message formats. The methodsinclude the act of identifying potential matching trade records to thetrade record. The methods include the act of comparing the trade recordto at least one of the potential matches based on the message format.The methods also include the act of generating a matching record basedon determining that one of the potential matching trade records matchesthe m [0003] essage.

Particular embodiments of the subject matter described in thisspecification can be implemented to realize one or more of the followingadvantages. Trades that were previously done manually may be automated.Computer systems may process records that were previously unprocessable.

Other embodiments of this aspect include corresponding computer systems,apparatus, and computer programs recorded on one or more computerstorage devices, each configured to perform the actions of the methods.A system of one or more computers can be configured to performparticular actions by virtue of having software, firmware, hardware, ora combination of them installed on the system that in operation causesor cause the system to perform the actions. One or more computerprograms can be configured to perform particular actions by virtue ofincluding instructions that, when executed by data processing apparatus,cause the apparatus to perform the actions.

The foregoing and other embodiments can each optionally include one ormore of the following features, alone or in combination. The methods mayfurther include the act of storing at least one trade record in traderecord data store. The record format may identify matching fields in thetrade record, and comparing the trade record includes compartingmatching fields in the trade record to at least some matching fields inthe at least one of the potential matches. The methods may include theact of storing the trade record in a record datastore based ondetermining that none of the potential matching records matches themessage. The operations may include the act of establishing a new recordformat between at least two users, the record format identifying fields.The message format may be determined by users of the system.

The details of one or more embodiments of the invention are set forth inthe accompanying drawings and the description below. Other features,objects, and advantages of the invention will be apparent from thedescription and drawings, and from the claims.

DESCRIPTION OF DRAWINGS

FIG. 1 illustrates commodity trading.

FIG. 2 illustrates traders interacting with a conventional exchangeconfirmation platform.

FIG. 3 illustrates an confirmation platform that enables traders toestablish custom message formats to confirm trades that have specialconfirmation requirements.

FIG. 4 illustrates an example of establishing a bilateral message formatbetween two traders.

FIG. 5 illustrates an example of traders confirming a trade with anconfirmation platform using custom message formats.

FIG. 6 is a block diagram of components that may be used in anconfirmation platform.

FIG. 7 illustrates an example process for processing records usingcustomizable formats,

Like reference symbols in the various drawings indicate like elements.

DETAILED DESCRIPTION

Referring to FIG. 1, futures contracts and other derivatives arefrequently traded without the expectation that the products or equitiesbehind them will ever be delivered. For example, a futures contract isan agreement to buy or sell a particular commodity (such as oil 106 orpork bellies 108) or a financial instrument (such as a cash in apredetermined currency, stocks, etc.) at a predetermined price at aspecified time in the future.

Frequently, the participants (trader 102 and 104) of a futures trade donot expect to hold the contract long enough to receive the commodity orfinancial instrument, instead, the futures contract may be used as aninvestment vehicle. However, at the time the futures contract iscomplete, delivery of the commodity will occur between the final holdersof the contract. As such, physical delivery contacts have additional anddiffering requirements than some over the counter (OTC) instruments.

A buyer and seller can arrange for trades of commodities and otherequities using electronic communication. Currently only a small portionof physical instruments and OTC derivative instruments areelectronically confirmed. FIG. 2 illustrates traders interacting with aconventional exchange confirmation platform 210. Generally, conventionalelectronic confirmation platforms 210 require that all traders (forexample, trader 202, 204, 206, and 208) using a single standard format212 for all messages send to the platform 210. The standard format 212,generally, is able to meet the needs of cleared and some derivativeinstruments; however, the single standard format 212 is unable to meetthe needs when different trading partners have different requirementsdue to commodity, regional, and local jurisdictional requirements. Theproblem can be further complicated as some brokers may have additionaldata requirements due to the systems that they use.

Consequently, trades for these commodities and derivatives are manuallyconfirmed. For example, a trader may send a fax, e-mail, or similartransmission to a trading partner. The trading partner reviews thedocument and manually confirms the details of the trade. In thesescenarios, there is no integration between systems, consequently, theprocess of confirming trades is error prone and time consuming. There isa need in the marketplace for a mechanism whereby these trades may beelectronically confirmed.

FIG. 3 illustrates an confirmation platform 316 that enables traders toestablish custom message formats to confirm trades that have specialconfirmation requirements. As used herein, a trader may refer to anyentity capable of making trades (such as an individual or anorganization). The confirmation platform 316 can accommodate tradeconfirmation between a buying trader and selling trader for differentkinds of equities and derivatives. Traders are able to set up their owntrade message formats for use with the trading platform. For example,trader 302 and trader 306 may agree to use one format for trading aparticular commodity while trader 302 uses a different format fortrading a different commodity with trader 310. In general, trade formatsare agreed upon bilaterally between two traders.

In this example, trader 302 may use custom formats 304, trader 306 mayuse custom formats 308, trader 310 may use custom formats 312, andtrader 314 may use custom formats 316. Generally, to have a tradeconfirmed between two traders, one trader (for example, trader 302)sends an electronic message to the confirmation platform 316 in a formatagreed upon between the two traders. The second trader (for example,trader 306) also sends an electronic message to the confirmationplatform 316 in the same format. The confirmation platform 316reconciles the two messages, identifying them as two sides of the sametrade. Once the confirmation platform 316 identifies that the twomessages are part of the same trade, the confirmation platform 316delivers a trade confirmation message to the first trader and the secondtrader.

FIG. 4 illustrates an example of establishing a bilateral message formatbetween two traders. In this example, trader 302 and trader 306 wish toestablish a message format for use in confirming commodity trades. Thetraders agree on a message format 402. The message format 402 includes aformat name 404. The format name 404 is used by an confirmation platformto identify the message format. Messages that are send to theconfirmation platform can include the name of the message format whichdefines the structure of the message, as discussed further below.

In general, each message format includes a list of field names. Thefield names are used to identify a piece of data (a value) in a messagethat conforms to the message format. In a message that conforms to themessage format, the field and the value are linked data items. Thefield, which is identified by a name, is a unique identifier within themessage for the value. For example, a message format may include a fieldnamed “first name”. Messages that conform to the message format willinclude a field “first name” and a corresponding value, for example,“Vikas.” The message format itself, generally does not designate thevalue for the fields for a particular message that conforms to theformat, but the message format may define the type of data that can beincluded in the field (for example, a number, a date, a currency amount,etc.). The message format may also include other validation rulesassociate with the field (for example, a number greater than zero).

The message format 402 can also include system required fields 406, thesystem required fields are fields which are required by the confirmationplatform and constitute the minimum number of fields which need to beincluded in a message. sd

The message format 402 can also include custom required fields 408. Thecustom required fields include fields that the traders agree must beincluded in a message conforming to the format. Examples of customrequired fields may include delivery location, hazardous materialdesignations, etc.

The message format 402 can also include optional fields 410. Optionalfields are fields that the traders agree can be included in the message,but do not need to be included in the message. Examples of optionalfields may include a comment field.

The message format 402 may also include an indication of matching fields412. Matching fields are fields that are required to match in order forthe confirmation platform to reconcile two messages. While the matchingfields 412 are shown in FIG. 4 as a separate entity from the messageformat 402, in some implementations, the matching fields 412 may beintegrated into the message format 402. For example, each field in themessage format 402 may include an attribute that indicates whether ornot the field is a matching field.

FIG. 5 illustrates an example of traders confirming a trade with anconfirmation platform using custom message formats. In this example,trader 502 sends a trade record 506 (the message) to an confirmationplatform 510. The trade record 506 includes a field that identifies themessage format of the trade record (in this example, the message formatis named “AAA”). The trade record may be, for example, an XML or JSONdocument.

Trader 504 also sends a trade record 508 to the confirmation platform510. The trade record 508 also includes a field that identifies themessage format (in this example, the message format of the trade record508 is also “AAA”).

The confirmation platform 510 identifies the message format. Using themessage format (for example, stored in a data store on the confirmationplatform), the confirmation platform identifies the fields in themessages that have been designated as matching fields. The confirmationplatform 510 then compares the values of the fields that have beendesignated as matching fields in the trade record 506 to the values ofthe corresponding fields in the trade record 508.

If the identified values in the trade record 506 match the correspondingvalues in the trade record 508, then the confirmation platform maygenerate a trade confirmation record 512. The trade confirmation recordmay be sent to each of the traders.

FIG. 6 is a block diagram of components that may be used in anconfirmation platform 600, such as the confirmation platform 316 of FIG.3. The components may be, for example, software programs, parts of asoftware program, or multiple software programs being executed by one ormore computer systems.

The confirmation platform 600 can include a user interface component602. The user interface component 602 may be configured to provide userinterfaces to one or more different users (for example, trader). Theuser interface component 602 may, for example, include a web server andthe ability to generate and provide dynamic and/or status HypertextMarkup Language (HTML) pages to a client, for example, a web browser.The user interface component 602 may have the ability to managecommunication with multiple different users through multiple differentuser interfaces during the same time period. For example, usingconventional parallel processing techniques, such as multiple processingcores, multiple threads, etc.

The confirmation platform 600 may include a network interface 604. Thenetwork interace 604 may be configured to receive messages from usersand to send messages to users using network protocols. These messagesmay be sent using the Hypertext Transport Protocol (HTTP) protocol, ormay be send using some other network protocol, for example, a securemessaging queue such as MQ SERIES. The network interface may beconfigured to secure communications between the users and theconfirmation platform using, for example, encryption protocols (such asthe HTTPS protocol).

A format generation component 606 may be able to generate, assist in thecreation, and store, a new messaging format for a user or group ofusers. In some implementations, the format generation componentcommunicates with the user interface 602 and/or the network interface604. In some implementations, a new messaging format may be stored in aformat datastore 612. The format datastore 612 may be, for example, arelational or object database. The format data store 612 may also be,for example, a flat file system.

Generally, each messaging format stored in the format datastore 612 maybe identified using a unique identifier. In some implementations, theunique identifier may be determined by the creator of the messageformat, in other implementations, the unique identifier may be generatedby the confirmation platform 600. In some implementations, the uniqueidentifier can include multiple different fields. In otherimplementations, the unique identifier is a single field.

When trade records are received by the confirmation platform 600, thetrade records may be stored in a records datastore 614. A matchingengine 608 may periodically look for matching records within thedatastore 614. In some implementations, the matching engine 608 may lookfor matching trade records in response to a new record being received.In other implementations, the matching engine 608 may look for matchingtrade records in response to some other stimuli, for example, after aperiod of time has passed since the last time the matching engine 60checked for matching records, for example, every 10 minutes.

The matching engine 608 selects a record to be the basis of the match.The selected record may be, for example, a record that has just beenreceived from the network interface 604 of the user interface component602. The selected record may also be a record selected from the recordsdatabase 614. The matching engine 608 identifies the record format forthe selected record. The matching engine 608 obtains the identifiedrecord format from the format datastore 612. As described above, therecord format identifies fields that need to match in order for tworecords to be matching (referring to as matching fields).

The matching engine 608 compares the selected record to records in therecord datastore 614 for a potential match. In some implementations, thematching engine 608 may reduce the amount of processing power requiredto perform the match by matching the selected record to only records inthe records datastore 614 that have the same record format as theselected record. Other optimizations may also be performed, for example,the records to compare to the selected record may be further reduced byrequiring that one of the identified trading partners in the recordmatches the identified trading partners in the selected record.

The matching engine 608 compares each of matching fields in the selectedrecord to the matching fields in at least some of the records in thedatastore. When the matching engine finds a matching record in therecords datastore 614, the matching engine identifies a match and aconfirmation generation component 610 generates a confirmation. Theconfirmation may be stored in a confirmation datastore 616.

The confirmation may be sent to the trading partners, for example, usingthe network interface 604.

In some implementations, only unmatched records are stored in therecords datastore 614. For example, if the matching engine 608 checksthe record datastore for a matching record for each record that is sentto the confirmation platform 600 as the record arrives, then thematching engine 608 only stores the received record in the recordsdatastore 614 if a match is not found. Once a record, stored in therecords datastore 614, is matched to an incoming record, the storedrecord may be deleted from the records datastore.

FIG. 7 illustrates an example process 700 for processing records usingcustomizable formats. The process may be performed by a computer system,for example, by the confirmation platform 600 of FIG. 6.

The process 700 stores 702 record formats. The record formats may berecord formats that are agreed to bilaterally between two tradingpartners.

The process 700 receives 704 a trade record. The trade record maycontain information that enables the process to identify the recordformat of the trade record.

The process 700 identifies 706 potential matching records.

The process 700 compares 708 the potentially matching records to thereceived trade record.

If the process 700 identifies a match, the process generates 710 amatching trade record.

Embodiments of the subject matter and the operations described in thisspecification can be implemented in digital electronic circuitry, or incomputer software, firmware, or hardware, including the structuresdisclosed in this specification and their structural equivalents, or incombinations of one or more of them. Embodiments of the subject matterdescribed in this specification can be implemented as one or morecomputer programs (i.e., one or more modules of computer programinstructions, encoded on computer storage medium for execution by, or tocontrol the operation of, data processing apparatus). A computer storagemedium can be, or be included in, a computer-readable storage device, acomputer-readable storage substrate, a random or serial access memoryarray or device, or a combination of one or more of them. The computerstorage medium can also be, or be included in, one or more separatephysical components or media (e.g., multiple CDs, disks, or otherstorage devices). The subject matter may be implemented on computerprogram instructions stored on a non-transitory computer storage medium.

The operations described in this specification can be implemented asoperations performed by a data processing apparatus on data stored onone or more computer-readable storage devices or received from othersources.

The term “data processing apparatus” encompasses all kinds of apparatus,devices, and machines for processing data, including by way of example:a programmable processor, a computer, a system on a chip, or multipleones, or combinations, of the foregoing. The apparatus can includespecial purpose logic circuitry (e.g., an FPGA (field programmable gatearray) or an ASIC (application specific integrated circuit)). Theapparatus can also include, in addition to hardware, code that createsan execution environment for the computer program in question (e.g.,code that constitutes processor firmware, a protocol stack, a databasemanagement system, an operating system, a cross-platform runtimeenvironment, a virtual machine, or a combination of one or more ofthem). The apparatus and execution environment can realize variousdifferent computing model infrastructures, such as web services,distributed computing and grid computing infrastructures.

A computer program (also known as a program, software, softwareapplication, script, or code) can be written in any form of programminglanguage, including compiled or interpreted languages, declarative orprocedural languages, and it can be deployed in any form, including as astand-alone program or as a module, component, subroutine, object, orother unit suitable for use in a computing environment. A computerprogram may, but need not, correspond to a file in a file system. Aprogram can be stored in a portion of a file that holds other programsor data (e.g., one or more scripts stored in a markup languagedocument), in a single file dedicated to the program in question, or inmultiple coordinated files (e.g., files that store one or more modules,sub programs, or portions of code). A computer program can be deployedto be executed on one computer or on multiple computers that are locatedat one site or distributed across multiple sites and interconnected by acommunication network.

The processes and logic flows described in this specification can beperformed by one or more programmable processors executing one or morecomputer programs to perform actions by operating on input data andgenerating output. The processes and logic flows can also be performedby, and apparatus can also be implemented as, special purpose logiccircuitry (e.g., an FPGA (field programmable gate array) or an ASIC(application specific integrated circuit)).

Processors suitable for the execution of a computer program include, byway of example, both general and special purpose microprocessors, andany one or more processors of any kind of digital computer. Generally, aprocessor will receive instructions and data from a read only memory ora random access memory or both. The essential elements of a computer area processor for performing actions in accordance with instructions andone or more memory devices for storing instructions and data. Generally,a computer will also include, or be operatively coupled to receive datafrom or transfer data to, or both, one or more mass storage devices forstoring data (e.g., magnetic, magneto optical disks, or optical disks),however, a computer need not have such devices. Moreover, a computer canbe embedded in another device (e.g., a mobile telephone, a personaldigital assistant (PDA), a mobile audio or video player, a game console,a Global Positioning System (GPS) receiver, or a portable storage device(e.g., a universal serial bus (USB) flash drive)). Devices suitable forstoring computer program instructions and data include all forms ofnon-volatile memory, media and memory devices, including by way ofexample, semiconductor memory devices (e.g., EPROM, EEPROM, and flashmemory devices), magnetic disks (e.g., internal hard disks or removabledisks), magneto optical disks, and CD ROM and DVD-ROM disks. Theprocessor and the memory can be supplemented by, or incorporated in,special purpose logic circuitry.

To provide for interaction with a user, embodiments of the subjectmatter described in this specification can be implemented on a computerhaving a display device (e.g., a CRT (cathode ray tube) or LCD (liquidcrystal display) monitor) for displaying information to the user and akeyboard and a pointing device (e.g., a mouse or a trackball) by whichthe user can provide input to the computer. Other kinds of devices canbe used to provide for interaction with a user as well; for example,feedback provided to the user can be any form of sensory feedback (e.g.,visual feedback, auditory feedback, or tactile feedback) and input fromthe user can be received in any form, including acoustic, speech, ortactile input. In addition, a computer can interact with a user bysending documents to and receiving documents from a device that is usedby the user (for example, by sending web pages to a web browser on auser's user device in response to requests received from the webbrowser).

Embodiments of the subject matter described in this specification can beimplemented in a computing system that includes a back end component(e.g., as a data server), or that includes a middleware component (e.g.,an application server), or that includes a front end component (e.g., auser computer having a graphical user interface or a Web browser throughwhich a user can interact with an implementation of the subject matterdescribed in this specification), or any combination of one or more suchback end, middleware, or front end components. The components of thesystem can be interconnected by any form or medium of digital datacommunication (e.g., a communication network). Examples of communicationnetworks include a local area network (“LAN”) and a wide area network(“WAN”), an inter-network (e.g., the Internet), and peer-to-peernetworks (e.g., ad hoc peer-to-peer networks).

The computing system can include users and servers. A user and serverare generally remote from each other and typically interact through acommunication network. The relationship of user and server arises byvirtue of computer programs running on the respective computers andhaving a user-server relationship to each other. In some embodiments, aserver transmits data (e.g., an HTML page) to a user device (e.g., forpurposes of displaying data to and receiving user input from a userinteracting with the user device). Data generated at the user device(e.g., a result of the user interaction) can be received from the userdevice at the server.

While this specification contains many specific implementation details,these should not be construed as limitations on the scope of anyinventions or of what may be claimed, but rather as descriptions offeatures specific to particular embodiments of particular inventions.Certain features that are described in this specification in the contextof separate embodiments can also be implemented in combination in asingle embodiment. Conversely, various features that are described inthe context of a single embodiment can also be implemented in multipleembodiments separately or in any suitable subcombination. Moreover,although features may be described above as acting in certaincombinations and even initially claimed as such, one or more featuresfrom a claimed combination can in some cases be excised from thecombination, and the claimed combination may be directed to asubcombination or variation of a subcombination. Similarly, whileoperations are depicted in the drawings in a particular order, thisshould not be understood as requiring that such operations be performedin the particular order shown or in sequential order, or that allillustrated operations be performed, to achieve desirable results. Incertain circumstances, multitasking and parallel processing may beadvantageous. Moreover, the separation of various system components inthe embodiments described above should not be understood as requiringsuch separation in all embodiments, and it should be understood that thedescribed program components and systems can generally be integratedtogether in a single software product or packaged into multiple softwareproducts.

Thus, particular embodiments of the subject matter have been described.Other embodiments are within the scope of the following claims. In somecases, the actions recited in the claims can be performed in a differentorder and still achieve desirable results. In addition, the processesdepicted in the accompanying figures do not necessarily require theparticular order shown, or sequential order, to achieve desirableresults. In certain implementations, multitasking and parallelprocessing may be advantageous.

What is claimed is: 1.-18. (canceled)
 19. A system comprising: aplurality of computerized datastores comprising: a format datastore, arecords datastore; and a computerized platform comprising: a networkinterface configured to be coupled to one or more computerized networks,one or more processors, and one or more a non-transitorycomputer-readable media, the non-transitory computer-readable mediaincluding computer instructions that, when executed by the one or moreprocessors, causes the one or more processors to perform operationscomprising: storing, in a relational or an object database of the formatdatastore, a plurality of different electronic message formats; storing,in the records datastore, a plurality of first electronic trade recordsreceived from one or more respective first computer devices using thenetwork interface, wherein each of the first electronic trade recordsidentifies a respective one of the electronic message formats of theplurality of different electronic message formats; receiving, using thenetwork interface, a second electronic trade record from a secondcomputer device, the second electronic trade record identifying arespective electronic message format of the plurality of differentelectronic message formats; identifying, using a matching engine of thecomputerized platform, a subset of the first electronic trade recordsthat potentially match the second electronic trade record, wherein eachof the first electronic trade records of the subset of the firstelectronic trade records identifies a respective electronic messageformat that matches the electronic message format identified by thesecond electronic trade record; comparing, using the matching engine,the second electronic trade record to the subset of the first electronictrade records; determining, using the matching engine and based on thecomparison, that one of the first electronic trade records of the subsetof the first electronic trade records matches the second electronictrade record; and responsive to determining that that one of the firstelectronic trade records of the subset of first electronic trade recordsmatches the second electronic trade record:  transmitting, using thenetwork interface, an electronic confirmation message to the secondcomputer device and to the first computer device from which the matchingfirst electronic trade record was received, and  deleting the matchingfirst electronic trade record from the records datastore.
 20. The systemof claim 19, wherein the records datastore comprises one or morecomputer readable data storage devices, and wherein deleting thematching first electronic trade record from the records datastorecomprises deleting the matching first electronic trade record from theone or more computer readable data storage devices
 21. The system ofclaim 19, wherein each of the electronic message formats identifiesrespective matching fields, and wherein comparing the second electronictrade record to the subset of the first electronic trade recordsincludes comparing matching fields in the second electronic trade recordto at least some matching fields in the subset of the first electronictrade records.
 22. The system of claim 19, wherein the operationsfurther comprise establishing a new electronic message format between atleast two users, the new electronic message format identifying fields.23. The system of claim 19, wherein each of the electronic messageformats is determined by users of the system.
 24. A computer-implementedmethod comprising: storing, in a relational or an object database of aformat datastore, a plurality of different electronic message formats;storing, in a records datastore, a plurality of first electronic traderecords received from one or more respective first computer devicesusing a network interface, wherein each of the first electronic traderecords identifies a respective one of the electronic message formats ofthe plurality of different electronic message formats; receiving, usingthe network interface, a second electronic trade record from a secondcomputer device, the second electronic trade record identifying arespective electronic message format of the plurality of differentelectronic message formats; identifying, using a matching engine, asubset of the first electronic trade records that potentially match thesecond electronic trade record, wherein each of the first electronictrade records of the subset of the first electronic trade recordsidentifies a respective electronic message format that matches theelectronic message format identified by the second electronic traderecord; comparing, using the matching engine, the second electronictrade record to the subset of the first electronic trade records;determining, using the matching engine and based on the comparison, thatone of the first electronic trade records of the subset of the firstelectronic trade records matches the second electronic trade record; andresponsive to determining that that one of the first electronic traderecords of the subset of first electronic trade records matches thesecond electronic trade record: transmitting, using the networkinterface, an electronic confirmation message to the second computerdevice and to the first computer device from which the matching firstelectronic trade record was received, and deleting the matching firstelectronic trade record from the records datastore.
 25. Thecomputer-implemented method of claim 24, wherein deleting the matchingfirst electronic trade record from the records datastore comprisesdeleting the matching first electronic trade record from one or morecomputer readable data storage devices of the records datastore.
 26. Thecomputer-implemented method of claim 24, wherein each of the electronicmessage formats identifies respective matching fields, and whereincomparing the second electronic trade record to the subset of the firstelectronic trade records includes comparing matching fields in thesecond electronic trade record to at least some matching fields in thesubset of the first electronic trade records.
 27. Thecomputer-implemented method of claim 24, wherein the operations furthercomprise establishing a new electronic message format between at leasttwo users, the new electronic message format identifying fields.
 28. Thecomputer-implemented method of claim 24, wherein each of the electronicmessage formats is determined by users of the system.
 29. One or morenon-transitory computer storage media encoded with computer programinstructions that when executed by one or more processors cause the oneor more processors to perform operations comprising: storing, in arelational or an object database of a format datastore, a plurality ofdifferent electronic message formats; storing, in a records datastore, aplurality of first electronic trade records received from one or morerespective first computer devices using a network interface, whereineach of the first electronic trade records identifies a respective oneof the electronic message formats of the plurality of differentelectronic message formats; receiving, using the network interface, asecond electronic trade record from a second computer device, the secondelectronic trade record identifying a respective electronic messageformat of the plurality of different electronic message formats;identifying, using a matching engine, a subset of the first electronictrade records that potentially match the second electronic trade record,wherein each of the first electronic trade records of the subset of thefirst electronic trade records identifies a respective electronicmessage format that matches the electronic message format identified bythe second electronic trade record; comparing, using the matchingengine, the second electronic trade record to the subset of the firstelectronic trade records; determining, using the matching engine andbased on the comparison, that one of the first electronic trade recordsof the subset of the first electronic trade records matches the secondelectronic trade record; and responsive to determining that that one ofthe first electronic trade records of the subset of first electronictrade records matches the second electronic trade record: transmitting,using the network interface, an electronic confirmation message to thesecond computer device and to the first computer device from which thematching first electronic trade record was received, and deleting thematching first electronic trade record from the records datastore. 30.The one or more non-transitory computer storage media of claim 29,wherein deleting the matching first electronic trade record from therecords datastore comprises deleting the matching first electronic traderecord from one or more computer readable data storage devices of therecords datastore.
 31. The one or more non-transitory computer storagemedia of claim 29, wherein each of the electronic message formatsidentifies respective matching fields, and wherein comparing the secondelectronic trade record to the subset of the first electronic traderecords includes comparing matching fields in the second electronictrade record to at least some matching fields in the subset of the firstelectronic trade records.
 32. The one or more non-transitory computerstorage media of claim 29, wherein the operations further compriseestablishing a new electronic message format between at least two users,the new electronic message format identifying fields.
 33. The one ormore non-transitory computer storage media of claim 29, wherein each ofthe electronic message formats is determined by users of the system.